#!/bin/bash
#
# Copyright 2015-2017 Adrian DC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# === Device AICP Syncer ===
function gitcpaicp()
{
  # Usage: gitcpaicp (Automated upstream to AICP device merger)

  # Variables
  local branch_origin=cm-14.1;
  local branch_target=n7.1;
  local headsha1;

  # Fetch remotes
  gitremoteverify aicp gitrai;
  git fetch aicp ${branch_target};
  git reset --hard aicp/${branch_target};
  git fetch origin ${branch_origin};

  # Log branches
  echo '';
  echo -e "  \e[1;34m\e[4;34mBranch : origin/${branch_origin}\e[0m";
  git log --pretty=oneline -n 16 origin/${branch_origin};
  echo '';
  echo -e "  \e[1;34m\e[4;34mBranch : aicp/${branch_target}\e[0m";
  git log --pretty=oneline -n 16 aicp/${branch_target};
  echo '';

  # Process cherry-picks request
  echo -en  '  \e[1;34m\e[4;34mNumber of commits :\e[0m ';
  read -r cnt;
  git cherry-pick FETCH_HEAD~"${cnt}"..FETCH_HEAD;

  # Diff branches
  echo '';
  echo -en  "  \e[1;34m\e[4;34mPress Enter to diff with origin/${branch_origin} :\e[0m ";
  read -r;
  git diff HEAD origin/${branch_origin} \
    | filterdiff -p1 -x aicp.dependencies -x system.prop \
    | colordiff

  # Upload changes
  echo '';
  headsha1=$(git log --max-count=1 --format=format:%H -- .);
  for i in $(seq $((cnt - 1)) -1 0); do
    echo -e " \e[1;34m\e[4;34m===[ ${headsha1}~${i} ]===\e[0m";
    echo '';
    git reset --hard "${headsha1}~${i}";
    git show -M --stat HEAD;
    gitstat aicp "${branch_target}";
    gitpraicp;
    gitpgaicp;
    echo '';
  done;
}
